Skip to content

feat:(APP-1055): Enable download of nested actions (10/10) - #1311

Open
milosh86 wants to merge 5 commits into
app-1032-implement-action-decodingdetails-viewfrom
app-1055-enable-download-of-nested-actions
Open

feat:(APP-1055): Enable download of nested actions (10/10)#1311
milosh86 wants to merge 5 commits into
app-1032-implement-action-decodingdetails-viewfrom
app-1055-enable-download-of-nested-actions

Conversation

@milosh86

@milosh86 milosh86 commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Description

Closes APP-1055.

Makes the "Download actions" export reusable and wires it into the two places that were still missing it: the standalone
ProposalActionsEditor and the read-only cross-chain forwardMessage details view.

  • useDownloadProposalActions — extracted verbatim from CreateProposalFormActions into
    modules/governance/hooks. Reads actions from the surrounding form, runs the registered prepare functions
    (proposalActionPreparationUtils.prepareActions, so actions needing async work such as IPFS pinning export their
    final calldata) and downloads the result. Returns { isPinning, hasPinErrors, handleDownloadActions }. daoId is
    optional and only decides the file name (dao-{daoId}-actions.json, else actions.json), so the hook also works
    outside a DAO context.
  • CreateProposalFormActions now consumes that hook instead of holding the pinning state and download callback itself —
    no behaviour change.
  • ProposalActionsEditor gains the same download support, passing isPinning / hasPinErrors / onDownloadActions
    through to ActionComposer. Previously the button was only available in the create-proposal form.
  • CrossChainControllerForwardMessageDetails gets a "Download actions" button below the nested actions list, exporting
    the raw Action[] tuples decoded from the _message payload as cross-chain-{chainId}-actions.json. The button is
    hidden when the message holds no actions. This path does not go through useDownloadProposalActions: the sub-actions
    are already-encoded calldata read back from a published proposal, so there is nothing to prepare and no form context
    to read from.
  • proposalActionsImportExportUtilsexportActionsToJSON / downloadActionsAsJSON now accept
    IExportableAction (Pick<IProposalAction, 'to' | 'value' | 'data'>) instead of the full IProposalAction, which is
    what lets the raw cross-chain tuples be exported without being faked into proposal actions.
  • Tests: new suite for useDownloadProposalActions (prepare-then-download, file naming, error path), download coverage
    for the cross-chain details view, and createProposalFormActions.test.tsx now spies on useDownloadProposalActions
    (the component's actual dependency) rather than the form-provider context.

Dependencies: stacked on app-1032-implement-action-decodingdetails-viewapp-1054-…app-1056-…app-1053-…
main. Merge the bases first. Last PR of the stack (10/10).

Type of Change

  • Minor: Feature (non-breaking change which adds new functionality)

Developer Checklist:

  • Manually smoke tested the functionality in a preview or locally
  • Confirmed there are no new warnings or errors in the browser console
  • (For User Stories only) Double-checked that all Acceptance Criteria are satisfied
  • Confirmed there are no new warnings on automated tests
  • Merged and published any dependent changes in downstream modules
  • Selected the correct base branch
  • Commented the code in hard-to-understand areas
  • Followed the code style guidelines of this project
  • Reviewed that the Files Changed in Github's UI reflect my intended changes
  • Confirmed the pipeline checks are not failing

Review Checklist:

  • (For User Stories only) Tested in a preview or locally that all Acceptance Criteria are satisfied
  • Confirmed that changes follow the code style guidelines of this project

@linear-code

linear-code Bot commented Aug 7, 2026

Copy link
Copy Markdown

APP-1055

@milosh86
milosh86 changed the base branch from main to app-1032-implement-action-decodingdetails-view August 7, 2026 14:51
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

🚀 Preview Deployment: View Here

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

E2E results (preview)

Smoke

Base URL https://app-next-h731i3a4d-aragon-app.vercel.app
Suite smoke
Playwright result ✅ passed
Summary 82 passed
HTML report View report
GitHub job ✅ completed

View run #4937

Signed-off-by: Milos Dzepina <milos@aragon.org>
Signed-off-by: Milos Dzepina <milos@aragon.org>
Signed-off-by: Milos Dzepina <milos@aragon.org>
@milosh86
milosh86 force-pushed the app-1055-enable-download-of-nested-actions branch from ce80e71 to eddcd7a Compare August 10, 2026 09:01
Signed-off-by: Milos Dzepina <milos@aragon.org>
@milosh86 milosh86 changed the title feat:(APP-1055): Enable download of nested actions feat:(APP-1055): Enable download of nested actions (10/10) Aug 10, 2026
@milosh86
milosh86 marked this pull request as ready for review August 10, 2026 09:53
@milosh86
milosh86 requested a review from a team as a code owner August 10, 2026 09:53
Signed-off-by: Milos Dzepina <milos@aragon.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant